class Context
{
	public String Input;
	public String Output;
}

public abstract class Interpreter
{
    public static void main(String[] args) {
        Context ctx = new Context();
        ctx.Input = "Hello Design Pattern";
        Interpreter ita = new InterpreterA();
        Interpreter itb = new InterpreterB();
        System.out.println(ctx.Input);
        ita.interprete(ctx);
        System.out.println(ctx.Output);
        itb.interprete(ctx);
        System.out.println(ctx.Output);
    }

	public abstract void interprete(Context context);
}
class InterpreterA extends Interpreter
{
    @Override
	public void interprete(Context context)
	{
		context.Output = context.Input.toLowerCase();
	}
}
class InterpreterB extends Interpreter
{
    @Override
	public void interprete(Context context)
	{
		context.Output = context.Input.toUpperCase();
	}
}